﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AccesoData;
using Entidades;
using Logica.Comandos.Lugar;
using Logica.Interfaces;

namespace Logica.Comandos.Sucursal
{
    public class ComandoCrearSucursal: Comando, IAgregable
    {
        #region Atributos

        private List<Comando> _comandos = new List<Comando>();
        #endregion

        #region Constructor

        public ComandoCrearSucursal()
        {
            _comandos.Add(FComandos.ComandoLugar().Agregar());
        }
        #endregion

        #region Metodos Sin Implementar
        public override void Ejecutar()
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Aseguradora aseguradora)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Entidades.Cliente cliente)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Inspeccion inspeccion, Aseguradora aseguradora)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Entidades.Lugar lugar)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Personal personal)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Entidades.Poliza poliza)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Recaudo recaudo)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(RecaudoInspeccion recaudoInspeccion)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Entidades.Ramo ramo)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Entidad recaudo, Entidad ramo)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(DetalleEstimado detalle)
        {
            throw new NotImplementedException();
        }

        public int Ejecutar(Entidades.Siniestro siniestro)
        {
            throw new NotImplementedException();
        }

        
        #endregion

        /// <summary>
        /// metodo que se encarga de la logica de almacenar una sucursal
        /// </summary>
        /// <param name="sucursal"></param>
        /// <returns></returns>
        public int Ejecutar(Entidades.Sucursal sucursal)
        {
            int idLugar = ((ComandoCrearLugar)_comandos[0]).Ejecutar(sucursal.Direccion);
            sucursal.Direccion.Id = idLugar;
            return DAO.ObtenerFabrica(1).ObtenerDaoSucursal().AgregarSucursal(sucursal);
        }
    }
}
